--[[
*   Controls provided:
*
*   # Container/separators Controls
*       - WindowBox
*       - GroupBox
*       - Line
*       - Panel
*
*   # Basic Controls
*       - Label
*       - Button
*       - LabelButton   --> Label
*       - ImageButton   --> Button
*       - ImageButtonEx --> Button
*       - Toggle
*       - ToggleGroup   --> Toggle
*       - CheckBox
*       - ComboBox
*       - DropdownBox
*       - TextBox
*       - TextBoxMulti
*       - ValueBox      --> TextBox
*       - Spinner       --> Button, ValueBox
*       - Slider
*       - SliderBar     --> Slider
*       - ProgressBar
*       - StatusBar
*       - ScrollBar
*       - ScrollPanel
*       - DummyRec
*       - Grid
*
*   # Advance Controls
*       - ListView
*       - ColorPicker   --> ColorPanel, ColorBarHue
*       - MessageBox    --> Window, Label, Button
*       - TextInputBox  --> Window, Label, TextBox, Button
--]]
local raylib = require('raylib')
local class = require('middleclass')
local settings = require('settings')

local Gui = class('Gui')
function Gui:initialize()
    self.children = {}
    raylib.InitWindow(settings.width, settings.height, settings.window_title)
    raylib.SetTargetFPS(settings.fps)
    self:draw()
end

function Gui.render()
end

function Gui:draw()
    while not raylib.WindowShouldClose() do
        raylib.BeginDrawing()
        raylib.ClearBackground(raylib.WHITE)
        self:render()
        raylib.EndDrawing()
    end
    raylib.CloseWindow()
end

return Gui
